# Самостоятельные практические задания ## Задание 1 - [Создайте нового пользователя, создайте для него физ.лицо и сотрудника. Выдайте пользователю готовый профиль с доступом к какому-либо приложению и авторизуйтесь под его именем.](https://help.global-system.ru/access_course/html/0610_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%201.html#id2) - [Создайте профиль и роль, открывающие доступ к приложению «Управление библиотекой». Выдайте профиль своему пользователю. Скройте для владельцев профиля пункт меню «Помощь».](https://help.global-system.ru/access_course/html/0620_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%202.html#id1) - [Настройте для пользователя доступ к переводу состояния документа «Возврат книг» из состояния «Оформляется» в «Выполнен» и обратно.](https://help.global-system.ru/access_course/html/0640_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%204.html#id1) ## Задание 2 - [Настройте роль таким образом, чтобы: список и карточки авторов был доступен только к просмотру, а список книг был доступен на добавление и редактирование за исключением атрибута «Кол-во страниц».](https://help.global-system.ru/access_course/html/0630_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%203.html#id1) - [Используя функционал дискретного доступа настройте роль, позволяющую пользователю видеть документы «Возврат книг» (LbrNN_InOrder) только в состоянии «Оформляется».](https://help.global-system.ru/access_course/html/0650_%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF.html#id1) Скрипт для фильтрации объектных привилегий: ``` select 1 from LbrXX_InOrder tt join Btk_ClassState cs on cs.id = tt.idState join ( select cast(json_array_elements_text(cast((¶ms) as json)) as int8) as id ) as ids on cs.idState = ids.id where tt.id = (&id) ``` Скрипт проверки строк по объектному кешу: ``` for (p: params) { var idClassState = rop.idState; var rvClassState = Btk_ClassStateApi.load(idClassState); var idvState = Btk_ClassStateApi.getAttrValue(rvClassState,"idState"); if (idvState.toString() == p.toString()) { return true; } } ```